﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Commonality.DTO.AuthorityDTO;
using Models.Authority;
namespace ICarlifeService
{
    public interface IBaseServer<T> where T : class, new()
    {
        #region EF
 int Add(T entity);//添加
        int Update(T entity);//修改
        int Delete(T entity);//删除
        List<T> GetAll();//显示
        T GetById(int id);
        int AddRange(List<T> enitity);//部分添加
        #endregion
        #region 泛型Dapper
        Task<int> Insert(T t);
        Task<int> Updates(T t);
        Task<int> Delete(List<T> t);
        Task<int> Insert(List<T> t);
        Task<List<T>> Select();
        Task<List<T>> Select(object param);
        #endregion
        #region Sql语句
#pragma warning disable CS8625 // 无法将 null 字面量转换为非 null 的引用类型。
        Task<int> Insert(string sql, object param, IDbTransaction tran = null);
#pragma warning restore CS8625 // 无法将 null 字面量转换为非 null 的引用类型。
#pragma warning disable CS8625 // 无法将 null 字面量转换为非 null 的引用类型。
        Task<int> Update(string sql, object param, IDbTransaction tran = null);
#pragma warning restore CS8625 // 无法将 null 字面量转换为非 null 的引用类型。
#pragma warning disable CS8625 // 无法将 null 字面量转换为非 null 的引用类型。
        Task<int> Delete(string sql, object param, IDbTransaction tran = null);
#pragma warning restore CS8625 // 无法将 null 字面量转换为非 null 的引用类型。
        Task<List<T>> Select(string sql, object param);
        Task<List<T>> Select(string sql, object param, CommandType commandType);
        #endregion
    }
}
 